一方で ポイントワイズ演算 テンソル内の各要素を独立して処理する。 リダクションパターン 複数の入力要素が1つの出力値(例:合計、最大値、平均など)に集約されるデータ依存関係を導入する。これを効率的に実装するには、データの論理的な2次元構造とハードウェアメモリにおける線形表現とのギャップを埋める必要がある。
1. 2次元メモリマッピング
2次元テンソルは論理的にはグリッドだが、物理的にはRAM上では線形である。 行優先 対比して 列優先 レイアウトを理解することは、リダクションが連続したメモリアドレスを走査するか、ストライドアクセスが必要になるかを判断するために不可欠である。
2. ポイントワイズとリダクションのトポロジー
ある 行列コピー は1:1の入出力マッピングを持つポイントワイズ演算を表す。一方、 リダクション は多くの入力から1つの出力へと集約される(N:1)操作であり、スレッド間での共有蓄積またはブロック内での逐次処理を必要とする。
3. 次元の縮小
リダクションは 軸 の操作によって定義される。軸1(行方向)ではなく軸0(列方向)に沿ってリダクションを行うことで、メモリのストライドパターンとハードウェアキャッシュヒット率が根本的に変化する。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>